<?php
namespace models\common;

/**
 * Multiple Language Trait
 * 
 * @desc 提供多语言相关的功能扩展
 * @version 1.0.0 
 * @author Jason
 * @date 2017年4月25日 下午1:46:40
 * 
 * @version 1.0.0
 * @date	2017年5月25日 下午1:53:04
 * @desc	文件结构（命名空间）调整
 */
trait MultipleLanguage
{
	// protected $multi_language_module = '';
	// protected $multi_language_fields = [];
	protected $multi_language_config = [];
	
	/** @var Lib_language */
	protected $lib_language = null;
	
	/**
	 * 加载多语言配置
	 *
	 * @return boolean 是否正确加载配置信息
	 */
	private function multi_language_handler()
	{
		/* 加载配置信息 */
		$this->config->load('language', !true);
		// print_r($this->config->item('module_fields', 'multi_language'));
		$config = $this->config->item('module_fields', 'multi_language');
		$model = lcfirst(basename(str_replace('\\', '/', __CLASS__)));
		$this->multi_language_config = @(array) $config[$model];
		// print_r($this->multi_language_config); var_dump($this->multi_language_config);
		
		/* 加载多语言处理函数库，这样就不用每个控制器都去手动加载了 */
		$this->load->library('lib_language');
		
		return !empty($this->multi_language_config);
	}
	
	/**
	 * 获取配置信息
	 *
	 * @param  string $key    配置信息关键字： module/fields/all(default)
	 * @param  string $mapper 主从表映射: master(默认)/<other>/all
	 * @return array          [description]
	 */
	public function get_multi_language_info($key = 'all', $mapper = 'master') {
	
		if (!in_array($key, ['module', 'fields'])) {
			if ($mapper === 'all') {
				return $this->multi_language_config;
			}
	
			return @(array) $this->multi_language_config[$mapper];
		}
	
		return @ $this->multi_language_config[$mapper][$key];
	}
}
